import gzip
import json
import os

def read_gzipped_json(file_path):
    """
    读取gzip压缩的JSON文件
    
    参数:
        file_path (str): .json.gz文件的路径
        
    返回:
        dict: 解析后的JSON数据
    """
    if not os.path.exists(file_path):
        raise FileNotFoundError(f"文件不存在: {file_path}")
    
    if not file_path.endswith('.json.gz'):
        print(f"警告: 文件扩展名不是.json.gz: {file_path}")
    
    try:
        # 使用gzip打开文件并读取内容
        with gzip.open(file_path, 'rt', encoding='utf-8') as f:
            data = json.load(f)
        return data
    except Exception as e:
        print(f"读取文件时出错: {e}")
        return None

# 使用示例
if __name__ == "__main__":
    file_path = "/home/not0433/wks/gitee_clone/lss/tools_b2d/b2d_dataset/Accident_Town03_Route101_Weather23/anno/00101.json.gz"
    
    # 读取文件
    data = read_gzipped_json(file_path)
    
    if data is not None:
        # 打印基本信息
        print(f"成功读取文件: {file_path}")
        print(f"数据类型: {type(data)}")
        
        # 如果是字典，打印键
        if isinstance(data, dict):
            print(f"字典键: {list(data.keys())}")
                
        # 如果是列表，打印长度
        elif isinstance(data, list):
            print(f"列表长度: {len(data)}")
            
        # 打印前几个元素（如果是列表）或部分内容（如果是字典）
        
        # print(json.dumps(data, indent=2, ensure_ascii=False))
        # print(data['bounding_boxes'][0].keys())
        print(data['sensors']['LIDAR_TOP'].keys())

        # if isinstance(data, dict) and len(data) > 0:
        #     # 获取第一个键的值
        #     first_key = list(data.keys())[0]
        #     print(f"{first_key}: {data[first_key]}")
        # elif isinstance(data, list) and len(data) > 0:
        #     print(data[0])